package com.sxj.corejava.code11_io.File;

import com.sxj.corejava.code08_常用类.日期类.DateUtil;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;

/**
 * @author 石小俊
 * @date 2025年02月21日
 */
public class Test03_常用方法 {

    public static void main(String[] args) throws IOException {
        test02();
    }

    /**
     * 获取文件信息的相关方法
     */
    public static void test01() {
        File file = new File("E:\\test\\a.txt");
//        File file = new File(".\\HelloWorld.txt");
        System.out.println("文件是否存在:" + file.exists());
        System.out.println("文件名:" + file.getName());
        // 此处的路径返回的是构造方法的参数路径
        System.out.println("文件的路径名:" + file.getPath());
        // 此处返回系统路径
        System.out.println("文件的绝对路径名:" + file.getAbsolutePath());
        // 对应构造方法参数中的parent字符串部分
        System.out.println("父目录名:" + file.getParent());
        // 对应构造方法参数中的parent对象部分
        File parentFile = file.getParentFile();
        System.out.println(parentFile.getName());

        System.out.println("文件长度:" + file.length());

        System.out.println("文件最后一次修改时间:" + DateUtil.toString(new Date(file.lastModified())));

        System.out.println("是否可读:" + file.canRead());
        System.out.println("是否可写:" + file.canWrite());
        System.out.println("是否可执行:" + file.canExecute());
        System.out.println("是否是文件:" + file.isFile());
        System.out.println("是否是目录:" + file.isDirectory());
        System.out.println("是否是隐藏文件:" + file.isHidden());

        // 文件分隔符常量
        // windows为\
        // linux与macos为/
        System.out.println("获取文件路径分隔符:" + File.separator);
    }

    public static void test02() throws IOException {
//        File file = new File("corejava/src/a.txt");
//        System.out.println("文件是否存在:" + file.exists());
//        // 当文件不存在时则创建文件,如果文件已经存在,则不创建
//        boolean flag = file.createNewFile();
//        System.out.println("是否成功创建文件:" + flag);
//
//        flag = file.renameTo(new File("corejava/src/aa.txt"));
//        System.out.println("文件重命名是否成功:" + flag);

//        File file2 = new File("corejava/src/a.txt");
//        boolean flag = file2.delete();
//        System.out.println("文件是否删除成功:" + flag);

//        File file = new File("E:\\test\\a");
//        // 创建目录,只能创建一层目录
//        boolean flag = file.mkdir();
//        System.out.println("目录是否创建成功:" + flag);

        // 如果要创建多层,使用mkdirs
//        File file = new File("E:\\test\\b\\bb");
//        boolean flag = file.mkdirs();
//        System.out.println("目录是否创建成功:" + flag);

        File file = new File("E:\\test");
        // 返回的是字符串
//        String[] arr = file.list();
//        System.out.println(Arrays.toString(arr));

        // 返回的是对应的文件对象
        File[] files = file.listFiles();
        System.out.println(Arrays.toString(files));


    }

}
